{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "4ad316ff-39a3-4df3-a633-f2c7deaffdea",
   "metadata": {},
   "source": [
    "# 滴滴出行A/B测试&城市运营分析"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b7876472-5e98-4337-8c87-b856a09f615f",
   "metadata": {},
   "source": [
    "## 项目背景"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3d16f005-c0f1-4dd4-86c8-798d412b5e08",
   "metadata": {},
   "source": [
    "### 1 背景"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c1c3f5ef-33fe-4191-a850-fa9b77e772bd",
   "metadata": {},
   "source": [
    "利用A/B测试的方法，来对滴滴出行的不同方案进行有效性判别，得出有益的见解，并支持下一步的产品迭代以及领导决策。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e5709ee5-3d02-489b-828a-63eb8d92f36c",
   "metadata": {},
   "source": [
    "### 2 数据说明"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0096dcf9-ff8c-413c-ba63-6404257c4767",
   "metadata": {},
   "source": [
    "数据集分为test.xlsx与city.xlsx两部分：\n",
    "\n",
    "其中test.xlsx为滴滴出行某次A/B测试结果数据，有日期、组别、订单请求数、GMV、每单优惠券金额、订单数、取消请求数等字段。\n",
    "\n",
    "city.xlsx为某城市运营数据，有日期、时点、订单请求数、订单数、可服务时长、平均订单时长、顾客预计等待时间、顾客实际等待时间、司机在忙率等字段。\n",
    "\n",
    "test.xlsx数据可以用来判断实验条件对此次A/B测试的结果影响是否显著；city.xlsx数据可以用来探索该城市运营中出现的问题，根据关键结论辅助决策。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5aa134ed-b81f-4927-968d-588ec269b761",
   "metadata": {},
   "source": [
    "## 一、A/B测试效果分析"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "98100b94-a50d-4932-aa51-547778a305d5",
   "metadata": {},
   "source": [
    "### 1 数据导入"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "a6753f41-cbe6-45ee-b9cb-6d1494905c37",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>group</th>\n",
       "      <th>requests</th>\n",
       "      <th>gmv</th>\n",
       "      <th>coupon per trip</th>\n",
       "      <th>trips</th>\n",
       "      <th>canceled requests</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019-01-01</td>\n",
       "      <td>control</td>\n",
       "      <td>30</td>\n",
       "      <td>7486.620</td>\n",
       "      <td>1.069746</td>\n",
       "      <td>24</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2019-01-02</td>\n",
       "      <td>control</td>\n",
       "      <td>152</td>\n",
       "      <td>38301.575</td>\n",
       "      <td>1.044199</td>\n",
       "      <td>121</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2019-01-03</td>\n",
       "      <td>control</td>\n",
       "      <td>267</td>\n",
       "      <td>67768.425</td>\n",
       "      <td>1.032276</td>\n",
       "      <td>215</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2019-01-04</td>\n",
       "      <td>control</td>\n",
       "      <td>369</td>\n",
       "      <td>94992.900</td>\n",
       "      <td>1.028196</td>\n",
       "      <td>298</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2019-01-05</td>\n",
       "      <td>control</td>\n",
       "      <td>478</td>\n",
       "      <td>123236.875</td>\n",
       "      <td>1.011807</td>\n",
       "      <td>390</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        date    group  requests         gmv  coupon per trip  trips  \\\n",
       "0 2019-01-01  control        30    7486.620         1.069746     24   \n",
       "1 2019-01-02  control       152   38301.575         1.044199    121   \n",
       "2 2019-01-03  control       267   67768.425         1.032276    215   \n",
       "3 2019-01-04  control       369   94992.900         1.028196    298   \n",
       "4 2019-01-05  control       478  123236.875         1.011807    390   \n",
       "\n",
       "   canceled requests  \n",
       "0                  1  \n",
       "1                  8  \n",
       "2                 14  \n",
       "3                 19  \n",
       "4                 24  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#A/B测试结果数据导入\n",
    "\n",
    "import pandas as pd\n",
    "\n",
    "test = pd.read_excel('test.xlsx')\n",
    "test.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "141fa0e8-f756-4ac9-b4e6-07a8ef77a2bf",
   "metadata": {},
   "source": [
    "### 2 计算ROI"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "6c1dead9-b785-4d03-a6c8-14616542c940",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>group</th>\n",
       "      <th>requests</th>\n",
       "      <th>gmv</th>\n",
       "      <th>coupon per trip</th>\n",
       "      <th>trips</th>\n",
       "      <th>canceled requests</th>\n",
       "      <th>ROI</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019-01-01</td>\n",
       "      <td>control</td>\n",
       "      <td>30</td>\n",
       "      <td>7486.620</td>\n",
       "      <td>1.069746</td>\n",
       "      <td>24</td>\n",
       "      <td>1</td>\n",
       "      <td>291.604269</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2019-01-02</td>\n",
       "      <td>control</td>\n",
       "      <td>152</td>\n",
       "      <td>38301.575</td>\n",
       "      <td>1.044199</td>\n",
       "      <td>121</td>\n",
       "      <td>8</td>\n",
       "      <td>303.143166</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2019-01-03</td>\n",
       "      <td>control</td>\n",
       "      <td>267</td>\n",
       "      <td>67768.425</td>\n",
       "      <td>1.032276</td>\n",
       "      <td>215</td>\n",
       "      <td>14</td>\n",
       "      <td>305.346684</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2019-01-04</td>\n",
       "      <td>control</td>\n",
       "      <td>369</td>\n",
       "      <td>94992.900</td>\n",
       "      <td>1.028196</td>\n",
       "      <td>298</td>\n",
       "      <td>19</td>\n",
       "      <td>310.026761</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2019-01-05</td>\n",
       "      <td>control</td>\n",
       "      <td>478</td>\n",
       "      <td>123236.875</td>\n",
       "      <td>1.011807</td>\n",
       "      <td>390</td>\n",
       "      <td>24</td>\n",
       "      <td>312.304607</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        date    group  requests         gmv  coupon per trip  trips  \\\n",
       "0 2019-01-01  control        30    7486.620         1.069746     24   \n",
       "1 2019-01-02  control       152   38301.575         1.044199    121   \n",
       "2 2019-01-03  control       267   67768.425         1.032276    215   \n",
       "3 2019-01-04  control       369   94992.900         1.028196    298   \n",
       "4 2019-01-05  control       478  123236.875         1.011807    390   \n",
       "\n",
       "   canceled requests         ROI  \n",
       "0                  1  291.604269  \n",
       "1                  8  303.143166  \n",
       "2                 14  305.346684  \n",
       "3                 19  310.026761  \n",
       "4                 24  312.304607  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#计算优惠券投入相对gmv的ROI\n",
    "\n",
    "test['ROI']=test['gmv']/(test['coupon per trip']*test['trips'])\n",
    "test.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ec5d7bd8-658a-4ee0-9643-e85475a4591d",
   "metadata": {},
   "source": [
    "### 3 requests检验"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6bd306c8-3f81-4fc1-a432-66cd112b433c",
   "metadata": {},
   "source": [
    "数据共58条，对照组与实验组各29条，样本量小于30。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d5edbec9-3c26-42d6-bc4c-9837419509e6",
   "metadata": {},
   "source": [
    "#### 3.1 requests方差检验"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "063004ff-0b75-45ad-a4a2-31580a3b61fa",
   "metadata": {},
   "source": [
    "记两组requests方差分别为c1,c2\n",
    "\n",
    "零假设H0：c1=c2；备选假设H1：c1≠c2\n",
    "\n",
    "显著性水平取0.05"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "e83063e6-eb59-413f-b777-070edd203878",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LeveneResult(statistic=0.014685075667736849, pvalue=0.903980667108546)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#levene检验requests是否齐方差\n",
    "\n",
    "requests_A=test[test.group=='control'].requests\n",
    "requests_B=test[test.group=='experiment'].requests\n",
    "\n",
    "import scipy.stats as st\n",
    "\n",
    "st.levene(requests_A,requests_B)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1fe136c6-c713-4893-ab68-173d500b19d8",
   "metadata": {},
   "source": [
    "p值大于0.05，不拒绝原假设，因此可认为两组实验requests齐方差。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f345e240-376a-4c26-8c51-1bfbec6a54ad",
   "metadata": {},
   "source": [
    "#### 3.2 requests均值检验"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "939468e0-9796-4c9f-940f-01a53f2735e5",
   "metadata": {},
   "source": [
    "该数据为同一样本实验前后的不同水平，因此选用配对样本t检验。\n",
    "\n",
    "记两组requests均值分别为u1,u2\n",
    "\n",
    "零假设H0：u1=u2；备选假设H1：u1≠u2\n",
    "\n",
    "显著性水平取0.05"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "9bc19bd9-3fe7-41c4-beef-ad0886372090",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "TtestResult(statistic=1.6436140982479508, pvalue=0.11143970454099936, df=28)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#配对样本t检验\n",
    "\n",
    "st.ttest_rel(requests_A,requests_B)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7d20bfb2-d1b3-42c5-8103-56394e5dba6f",
   "metadata": {},
   "source": [
    "p值大于0.05，不拒绝原假设，因此可认为实验条件对requests影响不显著。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d34770e4-e785-4857-82e1-97462ebadf1b",
   "metadata": {},
   "source": [
    "### 4 gmv检验"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b8dcda11-6e10-43d8-9ece-77676d633c2f",
   "metadata": {},
   "source": [
    "同理对gmv进行方差和均值检验。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4b204307-a369-461e-b326-c97f3dd72321",
   "metadata": {},
   "source": [
    "#### 4.1 gmv方差检验"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "ac7b6667-7c89-4b2a-8b45-a337b90e3724",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LeveneResult(statistic=0.02865341299111212, pvalue=0.8661917430097603)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#levene检验gmv是否齐方差\n",
    "\n",
    "gmv_A=test[test.group=='control'].gmv\n",
    "gmv_B=test[test.group=='experiment'].gmv\n",
    "\n",
    "st.levene(gmv_A,gmv_B)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1a40dae1-8149-4d47-a788-529b628ec121",
   "metadata": {},
   "source": [
    "p值大于0.05，不拒绝原假设，因此可认为两组实验gmv齐方差。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "772db8f6-e3f3-42fc-ac99-eeaafb311c94",
   "metadata": {},
   "source": [
    "#### 4.2 gmv均值检验"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "00f771df-0064-4584-83dd-66b4f2ca2979",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "TtestResult(statistic=4.247583846321442, pvalue=0.00021564303983362577, df=28)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#配对样本t检验\n",
    "\n",
    "st.ttest_rel(gmv_A,gmv_B)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a8c7a3e2-511e-4233-859e-d77810c61927",
   "metadata": {},
   "source": [
    "p值小于0.05，拒绝原假设，因此可认为实验条件对gmv有显著影响。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "898640dc-0bfc-4041-ac08-50ca52c0d14b",
   "metadata": {},
   "source": [
    "### 5 ROI检验"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c7a687e9-38a7-4316-91e2-02b8172fa504",
   "metadata": {},
   "source": [
    "同理对ROI进行方差和均值检验。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1e66cce8-85b9-4274-be6c-a31ec4afd79e",
   "metadata": {},
   "source": [
    "#### 5.1 ROI方差检验"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "e4adc762-2428-477c-adb0-11fb00474524",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LeveneResult(statistic=0.10363884745479335, pvalue=0.7487044961896305)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#levene检验ROI是否齐方差\n",
    "\n",
    "ROI_A=test[test.group=='control'].ROI\n",
    "ROI_B=test[test.group=='experiment'].ROI\n",
    "\n",
    "st.levene(ROI_A,ROI_B)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8f665554-f521-43c3-a1e1-074810c52742",
   "metadata": {},
   "source": [
    "p值大于0.05，不拒绝原假设，因此可认为两组实验ROI齐方差。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f9d9fb2a-9539-46ef-b30a-65f39107c164",
   "metadata": {},
   "source": [
    "#### 5.2 ROI均值检验"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "3d7333fe-fb9d-4320-8d2e-4e778dbd7b5a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "TtestResult(statistic=10.305504459268173, pvalue=4.93261342734923e-11, df=28)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#配对样本t检验\n",
    "\n",
    "st.ttest_rel(ROI_A,ROI_B)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ab0a58c7-5fdf-43d2-a855-167a298eb55c",
   "metadata": {},
   "source": [
    "p值小于0.05，拒绝原假设，因此可认为实验条件对ROI有显著影响。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "358ac34b-a2ec-4661-977b-8bedf223a603",
   "metadata": {},
   "source": [
    "## 二、城市运营分析"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "92d1ad9c-f3ef-44d1-a638-093a38e3f9d4",
   "metadata": {},
   "source": [
    "### 1 数据导入"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "f0d39564-939a-41b8-a476-251ed09c166e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>hour</th>\n",
       "      <th>requests</th>\n",
       "      <th>trips</th>\n",
       "      <th>supply hours</th>\n",
       "      <th>average minutes of trips</th>\n",
       "      <th>pETA</th>\n",
       "      <th>aETA</th>\n",
       "      <th>utiliz</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2013-09-01</td>\n",
       "      <td>11</td>\n",
       "      <td>79</td>\n",
       "      <td>55</td>\n",
       "      <td>42.63</td>\n",
       "      <td>20.43</td>\n",
       "      <td>5.51</td>\n",
       "      <td>7.19</td>\n",
       "      <td>0.479240</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2013-09-01</td>\n",
       "      <td>12</td>\n",
       "      <td>73</td>\n",
       "      <td>41</td>\n",
       "      <td>36.43</td>\n",
       "      <td>15.53</td>\n",
       "      <td>5.48</td>\n",
       "      <td>8.48</td>\n",
       "      <td>0.426297</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2013-09-01</td>\n",
       "      <td>13</td>\n",
       "      <td>54</td>\n",
       "      <td>50</td>\n",
       "      <td>23.02</td>\n",
       "      <td>17.76</td>\n",
       "      <td>5.07</td>\n",
       "      <td>8.94</td>\n",
       "      <td>0.771503</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2013-09-02</td>\n",
       "      <td>11</td>\n",
       "      <td>193</td>\n",
       "      <td>170</td>\n",
       "      <td>64.20</td>\n",
       "      <td>31.47</td>\n",
       "      <td>5.31</td>\n",
       "      <td>6.55</td>\n",
       "      <td>0.490187</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2013-09-02</td>\n",
       "      <td>12</td>\n",
       "      <td>258</td>\n",
       "      <td>210</td>\n",
       "      <td>80.28</td>\n",
       "      <td>38.68</td>\n",
       "      <td>4.94</td>\n",
       "      <td>6.08</td>\n",
       "      <td>0.481814</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        date  hour  requests  trips  supply hours  average minutes of trips  \\\n",
       "0 2013-09-01    11        79     55         42.63                     20.43   \n",
       "1 2013-09-01    12        73     41         36.43                     15.53   \n",
       "2 2013-09-01    13        54     50         23.02                     17.76   \n",
       "3 2013-09-02    11       193    170         64.20                     31.47   \n",
       "4 2013-09-02    12       258    210         80.28                     38.68   \n",
       "\n",
       "   pETA  aETA    utiliz  \n",
       "0  5.51  7.19  0.479240  \n",
       "1  5.48  8.48  0.426297  \n",
       "2  5.07  8.94  0.771503  \n",
       "3  5.31  6.55  0.490187  \n",
       "4  4.94  6.08  0.481814  "
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#导入该城市运营相关数据\n",
    "\n",
    "city = pd.read_excel('city.xlsx')\n",
    "city.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "0560cce1-a003-4cdd-88e5-68a6676a8d43",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 90 entries, 0 to 89\n",
      "Data columns (total 9 columns):\n",
      " #   Column                    Non-Null Count  Dtype         \n",
      "---  ------                    --------------  -----         \n",
      " 0   date                      90 non-null     datetime64[ns]\n",
      " 1   hour                      90 non-null     int64         \n",
      " 2   requests                  90 non-null     int64         \n",
      " 3   trips                     90 non-null     int64         \n",
      " 4   supply hours              90 non-null     float64       \n",
      " 5   average minutes of trips  90 non-null     float64       \n",
      " 6   pETA                      90 non-null     float64       \n",
      " 7   aETA                      90 non-null     float64       \n",
      " 8   utiliz                    90 non-null     float64       \n",
      "dtypes: datetime64[ns](1), float64(5), int64(3)\n",
      "memory usage: 6.5 KB\n"
     ]
    }
   ],
   "source": [
    "#查看数据有无缺失值\n",
    "\n",
    "city.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "de91313e-8d6b-408d-a4d4-5c7e696bae70",
   "metadata": {},
   "source": [
    "### 2 数据探索"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a8273dca-06c2-4d49-8c63-519dc5fea931",
   "metadata": {},
   "source": [
    "#### 2.1 单量最多的时间点"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "9ca96e54-c4f1-4d20-9890-684449bd5432",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\kyyk\\AppData\\Local\\Temp\\ipykernel_2720\\356272351.py:1: FutureWarning: The provided callable <built-in function sum> is currently using SeriesGroupBy.sum. In a future version of pandas, the provided callable will be used directly. To keep current behavior pass the string \"sum\" instead.\n",
      "  req_hour = city.groupby(['hour']).agg({'requests':sum})\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>requests</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>hour</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>6008</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>8530</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>6559</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      requests\n",
       "hour          \n",
       "11        6008\n",
       "12        8530\n",
       "13        6559"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "req_hour = city.groupby(['hour']).agg({'requests':sum})\n",
    "req_hour"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "7be7a0c9-2503-4b10-a841-ef60f74dc1cc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAikAAAHDCAYAAADhpIpnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA06UlEQVR4nO3dfXRU5b3+/2syk0wMkIfR8BQCCUGhgsE2TomURlxNEYRIfKgHsXqgtaW0iyrQqaB4xKohPdWIthVEUyPYqthqxSqCBxBtbdBYiMZEgWAwgEDAMBMIGchk//7gy/wck0AyPOQOeb/W2kv3/dl7z2cmw8qVPffeY7MsyxIAAIBhIjq6AQAAgJYQUgAAgJEIKQAAwEiEFAAAYCRCCgAAMBIhBQAAGImQAgAAjERIAQAARiKkAIZoamrq6BaMxT0nga6JkAIYYubMmbrxxhvPyLEfeeQRLVq0qE3blpWV6fXXX2/zsQOBQLhtNTNlyhQ9++yzIWPV1dUaPHiw1qxZE/ZxX3jhBVVUVLR7vyNHjqixsTHsx23J9u3bNWrUKP373/9u8z67du1SZWXlae0D6AwIKYABGhsbtXz5cn3nO985I8dfs2aN3n777TZtu2zZMv3kJz9p87FvuOEGzZw5M7i+detWffTRR/rkk09aXMrKyvTRRx+1eCy3260ZM2aopqYmOPbUU09p165dGjx4cKs9zJgxQy+//HJw/fDhwzp69GjwDIzH49E///lPScfOWPn9fh05cuSkz2348OG66667JEnvv/++Ro4cqQ8//PCk+51IdHS0/vWvf+nw4cMh4zU1NUpJSdG6deua7XPfffdp0qRJp/S4QGfk6OgGAEhPPvmkdu/erTvuuEN33HFHs3r//v318ccfq3v37pKkzz//XAMGDGi23XvvvSe3291sPDIyUpGRkW3qJTo6WpL0ySefhIw3Njbq8OHDGjp0qGJiYoLjV199taZNm6aIiAg9/PDDmjVrlt588005nc7gNj6fT9HR0bLb7QoEAurTp0+LZwamTZumf//739q7d68SExMVCARUWFioOXPmqF+/fq32nJWVpZtuuknLly/XNddco+uuu07vvfee7Ha7bDab9u/fr1/96leaN2+empqa1NjYqLlz5+rXv/71SV+L489j+PDhGjRokEaNGqW1a9fqsssuC263fft2LV++XE6n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xzRRUVH661//qkOHDumZZ57RTTfdJEn6+c9/rqNHj+rxxx9v9+sSERERnEgbFxfX7DGBcx0hBegA+/bt02WXXaaePXvq3nvvVa9evfR///d/+v3vf6/zzz9fO3bsUExMjB588EG9//77uueee5SYmKiioiJ179691RuoWf9vvskvf/lLvfvuu1q7du1Je/H7/fL7/dqxY0eri8/nO+03NfuqI0eO6O233w5eKh0ZGRm8Wuf4enx8fLuOGR0drZdeekkNDQ0hy5VXXtli4JGka665Rp9//rlcLpfcbrd27Nih3NxcWZalK664Qg899JDuvvvuVh8zNjY2eMnx8bM73bp1089//nP97ne/a3ZvFAAnxsRZoANccMEFmj17ttLS0uR2u+VwOJrdafWr+vTpo127dikQCMhut2vPnj2Sjt0AbMeOHcH142dYsrOz9fDDD7d4z5Sv8/v9Ki4uVnJy8gm3O9HN1E7Vb37zG/3P//xPyNjQoUM1Z84c3XLLLSHjbT3zY7fbdcstt4ScaZGk2traZpdXf9Vrr72madOmafbs2VqxYkXw/i/XXXed0tLSTviYW7Zs0aOPPqpf/vKXuuuuuzRmzBgNGzZMP/rRj2Sz2dp9e3/LsrRv37527QOcSziTAnSQm266Sd/+9rdls9kUFRWlV199tcX5IE8//XTwF+3xU//Hz6TceOONSk5ODt435PjZDrvdrlmzZp30yo9du3bp0UcfbXUuSiAQCP5/RUWFjh49etLn9eSTT+q9995r02tQU1OjDz/8UFu2bFFVVVXI0tjYqH379jUb//TTT7Vx48aQeSPH+Xw+XXvttcH5K8uWLdPu3btDlu9+97st9nLo0CFNmzZNM2bM0Isvvqj58+cH5/6MGzdOkydPVk5Ojt59990W929oaNCkSZN044036tFHH1Vubq5uvfVWNTY2ql+/frrnnntCboJ3MqtWrVJGRoZ++9vftrpNS/N0gHMJIQUwwMnmc3z9Bl/HQ8q6detkWZa2bt2qAQMGNLv0+GTy8vI0fPhwNTQ0aNWqVSHfHTRz5syQ291ff/31J/yoQ5Ly8/M1bdo0ffrpp216/Ndff12XX365MjMzmy07duzQ/fff32w8IyNDbrdb1dXVweMcvzx59OjRcrlcwRvf3XzzzbrgggtClpa+HuAf//iHhg0bpg0bNqikpERjx45tts2iRYt0+eWX63vf+54efvjhkI/cDhw4oDFjxigQCATnnjzyyCPaunWrVq1a1abX4vjE2nXr1uk73/mOxo0bp+Tk5GZnkr66/cCBA08YYoBO7yxdRQTgBHr06GEVFRVZ1dXVzZaCggJr4MCBIdt/8cUXVkZGhlVSUnLC49bX11tHjx61RowYYU2dOjWkduDAASs2NtaaP3++ZVmW9e6771qSrA0bNliWZVmFhYVWZGSk9emnn1qWZVmPP/645XA4rI0bNzZ7nDvvvNOKioqynE6n9eyzzzar9+zZ84SXILdk4MCB1tNPP92mbWfPnm316NHD+utf/xoci4mJsV599dVm237ve9+z7r333uD6+++/bzkcDusHP/iBdejQoZBtL7300uDrY1nHLlWeMWOGJclKTU21qqqqrKamJisrK8saPHiw9cUXX4Ts/9WbvR09etQqKyuzli5daklq9rNbvnx58HLqa6+9NuR1vvvuu62ePXtaGzZssCoqKqyKigrrwQcftCRZr732WpteI6AzIqQABnA6nSe8N0hSUlJYx50/f37wF9/SpUtDar/+9a+t2NhY68svvwyOfeMb37BuueUWy7KO/UJOS0uzfvjDH1qWdezuuMOHD7cyMzOtpqam4D5NTU3WxRdfbMXGxobc8+XAgQPWFVdcYQ0fPtyS1GJgOJHk5ORm9yNpjdfrtT7++OOQMbvd3uwxPR6P5XK5rL/97W8h4x988EHIc3rmmWes7373u5bNZrP+9Kc/NXu81atXWytWrAiub926tVlA+bqmpiYrLS3NcjgcVk5OjtXQ0BBSr6+vt6699tqQe6oct2nTJmvAgAEh7wmHw2HdcsstIX0D5xqbZbVzJheA02779u3q2bPnab/EdM+ePfrnP/8pt9ut/v37h9Q++OADbd68OXiprHTsHh2DBw8Ofnnh+vXrlZKSElxft26dGhoaNG7cuJBjPfLII8GPbb5q9OjRqq+v15VXXqkHHnigXZcpx8fHa8GCBZo+fXq7nvOJHD58OHh584ls2bJFBQUFysrK0qRJk9r9MVprqqqqlJiYGPySQQAnRkgBAABGYuIsAAAwEiEFAAAYiZACAACMREgBAABG6tS3xW9qatKuXbvUo0eP0zb7HgAAnFmWZamurk59+/YN3tm5JZ06pOzateuk3zcCAADMVF1drX79+rVa79Qh5fj3klRXVys2NraDuwEAAG3h8/mUnJx80u8X69Qh5fhHPLGxsYQUAAA6mZNN1WDiLAAAMBIhBQAAGImQAgAAjNSp56QAALq2QCCgo0ePdnQb+JrIyEjZ7fZTPg4hBQDQ6ViWpd27d+vAgQMd3QpaER8fr969e5/SfcwIKQCATud4QOnZs6diYmK4oadBLMtSfX299u7dK0nq06dP2McipAAAOpVAIBAMKOeff35Ht4MWnHfeeZKkvXv3qmfPnmF/9MPEWQBAp3J8DkpMTEwHd4ITOf7zOZU5Q4QUAECnxEc8ZjsdPx9CCgAAMBJzUgAA54yUOa+d1ceryh9/Vh+vq+FMCgAACKqqqjLmozRCCgAAMBIhBQCAs2TKlCmaP3++nn32WQ0ePFh/+MMfJEnvv/++RowYobi4OF133XXyer3BfRYtWqSkpCSlpKTo9ttvV0pKiiSpqKhIo0ePDm739TMgb7zxhi655BLFx8frtttuk9/vD9Yeeugh9enTR7GxsbrpppuCtejoaKWmpko6NvHVZrOpuLhY0rH7n8yePVsXXHCBEhISdPvtt8uyrDPyOh1HSAEA4CxatWqVHn/8cRUUFCg3N1cHDhzQuHHjNH78eH300Ueqr6/X7NmzJUklJSWaOXOmnnjiCf3jH//Q66+/3qbHqKys1MSJEzVz5kx98MEH+uCDD/S73/1OkvTJJ59ozpw5euGFF/Sf//xHW7duVVFRkSRpz549Ki0tlSTV1taqtrZWbrc72PfTTz+tNWvW6J///KdefvllrV69+jS/OqGYOAt0QWd7cuG5jImTaK9t27Zp8+bNiouLkyQ9++yzioyM1D333CObzaaZM2fqlltukSStWLFCY8eO1YQJEyRJHo9HeXl5J32M5557Tt/85jf1ox/9SJL0s5/9TIWFhZo3b56io6MlSX6/X/3799eGDRuC+8XFxSk2NlbSsdvaf9V5552npqYm+f1+DRs27KzMXSGkAABwFt16663BgCJJO3fuVE1NjRISEiRJTU1NqqurU0NDg/bu3au+ffsGtx0wYECrx62vrw855n/+859g0GhsbFT37t0lSSkpKXrqqac0Z84cbd68WWPHjtUf//hH9ezZ84R9X3HFFbrrrrs0depU7dq1SzfccIMWLlyobt26tfs1aCs+7gEA4Cz6+i/1fv366bLLLtOmTZu0adMmlZaWauPGjYqMjFSfPn1UXV0d3Hbbtm3B/7fZbAoEAsH1kpKSkGNec801Icd88803JUk7duxQenq6PvjgA33++eeqra3V/fffH9w3IuJYNPj6fJOtW7cqJydHH3/8scrKylRcXKzFixefhlekdYQUAAA60Pjx47V9+3a99957stvtev755zV27FhZlqWJEyfqzTff1IoVK1RWVqaHHnoouF+/fv308ccfq7a2Vnv27Amp3XTTTXrnnXe0ZcsWSdKjjz6qqVOnSpLKy8s1btw4/etf/9KhQ4dks9nU1NQU3LdPnz7q1q2bXn31VW3fvj04cXbt2rW6/vrrtXHjRh05cqTZfmcCIQUAgA4UHx+vFStW6OGHH9aQIUP08ssva8WKFXI4HLr00kv12GOPafr06brmmmt0/fXXB/e78sorNXbsWF1yySXKycnRAw88EKwNHDhQzzzzjGbNmqWhQ4eqrKxMzz33nCRpzJgxmjZtmn7wgx/ooosukmVZuvvuu4P7RkZG6qmnntL06dN18cUX6+9//7skaerUqcrKytJVV12l9PR0XXjhhZo+ffoZfW1s1pm+fugM8vl8iouLk9frDU70AXByTJw9fZg4e/Y1NDTos88+U2pqanASaFfx1ltvacqUKaqqquroVk7qRD+ntv7+5kwKAAAwEiEFAIBOYvTo0Z3iLMrpQkgBAABGIqQAADqlTjylsks4HT8fQgoAoFOJjIyUFHrzMpjn+M/n+M8rHNxxFgDQqdjtdsXHx2vv3r2SpJiYmDN+e3a0nWVZqq+v1969exUfHy+73R72sQgpAIBOp3fv3pIUDCowT3x8fPDnFC5CCgCg07HZbOrTp4969uypo0ePdnQ7+JrIyMhTOoNyHCEFANBp2e320/LLEGZi4iwAADASIQUAABipXSFl2bJl6t+/v7p3767s7OzgXe/KysrkdruVkJAgj8cTcm10uDUAANC1tTmkVFZW6u6779bf//53lZeXa8CAAZoyZYr8fr9ycnKUkZGhkpISlZeXq6ioSJLCrgEAALQ5pGzcuFGZmZn61re+pf79+2vq1KnavHmzVq5cKa/Xq4KCAqWlpSkvL0+FhYWSFHYNAACgzSHl4osv1tq1a7Vx40Z5vV798Y9/1Pe//32VlpYqMzNTMTExkqT09HSVl5dLUtg1AACANl+CfPHFF+uGG27Qt771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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#绘制各时点订单请求柱状图\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "plt.rcParams['font.sans-serif'] = 'SimHei'\n",
    "\n",
    "req_hour.plot(kind='bar')\n",
    "plt.xticks(rotation=0)\n",
    "plt.title('各时点订单请求对比')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8815444c-34e4-4da9-9e9c-e86be041e361",
   "metadata": {},
   "source": [
    "可见，在11、12、13这三个时间点内，12点用户发起订单的需求是最大的，其次是13点，11点。\n",
    "\n",
    "司机运营平台应考虑加大该时点车辆供应。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8a2566f0-7426-4d91-9b95-80a4301b3285",
   "metadata": {},
   "source": [
    "#### 2.2 单量最多的日期"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "d9422ade-0b61-45d0-9bd2-2a081fe81b6e",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\kyyk\\AppData\\Local\\Temp\\ipykernel_2720\\444324826.py:1: FutureWarning: The provided callable <built-in function sum> is currently using SeriesGroupBy.sum. In a future version of pandas, the provided callable will be used directly. To keep current behavior pass the string \"sum\" instead.\n",
      "  req_date = city.groupby(['date']).agg({'requests':sum})\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>requests</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2013-09-01</th>\n",
       "      <td>206</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-09-02</th>\n",
       "      <td>604</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-09-03</th>\n",
       "      <td>238</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-09-04</th>\n",
       "      <td>199</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-09-05</th>\n",
       "      <td>782</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            requests\n",
       "date                \n",
       "2013-09-01       206\n",
       "2013-09-02       604\n",
       "2013-09-03       238\n",
       "2013-09-04       199\n",
       "2013-09-05       782"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "req_date = city.groupby(['date']).agg({'requests':sum})\n",
    "req_date.sort_values('date').head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "22c43c33-cd7c-4bbb-b142-7f5442071c67",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAHtCAYAAAAHuUQDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACPgklEQVR4nO3deXhU5fUH8O+dNfu+kIQACauAoGAEQRErRVRQXItardTdal0oVfvTarVFbBGtG4iilFrF1ooslU1BxAUwCEgIOwTIQsg6mWSSySz398fk3iSQbWbuzJ3l+3mePA/JTWbekGTmzHnPe44giqIIIiIioiCiUXsBRERERO5iAENERERBhwEMERERBR0GMERERBR0GMAQERFR0GEAQ0REREGHAQwREREFHQYwREREFHQYwBCRx4K9D6bT6VR7CUTkIQYwRD62fv16rF692qMne7vd3qO3zp6I7Xa7t8sHAPzvf//D9ddff9b9TJ8+HU888YTHt7tjxw6sWrXK7a9zOBywWq0e329VVRWys7Pxj3/8w+2vraioOOu26urqevz17733Hk6cOHHWx//1r3+hrKzM7fUArp9zU1OTR19LFKwYwBD52BNPPIHFixdDEIROP8fhcMBisbT72IkTJ6DX63v09sADD5x1m//9738xatQo+UmxpqYGu3btwr59+7B///6z3goLC7Fr1y6Yzeazbuv888/Hl19+icWLF8sfO3r0KFatWoWMjIxOv6+NGzfirrvukgMpm82GpqYmORBasWIF5s6dC8CVzbHb7WhsbOz09iTz5s1DdnY2AKC5uRlXX301Xn311bM+z+l0wmKxwOFwtAsgk5OTMXz4cLz11lvtPl8URTgcDjQ2NnYY/O3duxd9+vTBf//7X/ljkydPxp/+9Kdu1yx56KGHsHfv3nYf27VrF375y19i9+7d3X79E088gYsuuqjdx6qqqhAZGYmvv/66x+sgCnY6tRdAFMr++c9/YteuXdi1a1eXAYyksbERERERAACtVgsAWLBgASZNmtTp10ycOFH+3LbOP/98mEwm/OxnP8PmzZuxZcsW3HLLLYiIiIBG43rt0tTUBIfDgcjISDidTlitVnzxxRe49NJL291WZmYmnn/++Xbfw6JFizBo0CA89NBDna5t2LBh2LJlC375y1/io48+wscff4yHH34YOp0OGo0GFosF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lZW44YYbEBUVhaeeegoffvghHnnkESxcuBDZ2dmdBj8AsGzZMmi1WjzzzDP4/PPP8fXXX7e7r8cffxyLFy/G8uXL5dqkzpSWlmLy5Mno3bs3tmzZIp8u6opUwySd5Lr99tvxyiuvyP9nzz333Flf86c//andz/WWW27BihUrOrz96Ojosz72xhtvyKe5iEIRAxgiHyopKUFqaqq8FfDoo48iIyOj3fZKQ0MDoqKiYLFYEBUVJX9c6QzMkSNH8J///AdPPvlkj25zx44diIyMPGt7qLa2Fk1NTR3Ws9hsNiQlJSErK+usay+//LIcpE2dOlUuQpV88MEHePrppztcy3/+8x/cd999uP322zFv3jw5cxEZGYklS5Zg0qRJiI6Olrv6nkkKbubMmYODBw/iqquuwmeffYbU1FQ899xzWLhwIVavXt3u5FFnMjMzsXbtWuTl5XV4+kr6f9BoNHKAsmfPHgCukQyAa2tL+llXVVWhpqZG3j5q+/8tbeEBwPvvvw+HwyEfKa+rq8OFF16Im266CS+88IL8ec3NzUhJSeExagp5DGCIfKioqAinTp3q9kj0OeecI582kUhPXtddd12399P2ia4ju3btko/k9jSAGTduHIxG41kBjNVqhc1mw9ixY89ag9VqxRNPPNHuCbW+vh6vvfYaAFeQ8tNPP2HVqlVnbctYrdaztmFOnjyJRx55BGvXrsU777wj13W0NXHiRLk4urCwEAsWLOgwgAJctTrLli3D7bffjvPPPx8jRozAzp07sW7dug7rlNqSgkRRFHHxxRd3+bk7duzAzJkz8cEHH2D06NH45ptvMHLkSHz66ac4ceIEJk+eLH/uu+++iz/+8Y9nBTDR0dHtsnBtM3RVVVW45557YLPZ8H//93/tskaHDh2CKIodnhwjCiUMYIh8aNq0aZ3O9hFFEV9++SVuuukmnDp16qwsitT87t1338UVV1zR6X1cdNFFnTbKk2ojbrjhBlxzzTVYunRpu+tn1nu01dmwxBdeeAFffvklvvrqq06/VrJnzx789NNP+PWvf43XX38dkZGRWLx4MaZNm9ZtBsbhcOC6667D6dOn8c0338gni6RrbYPCX/3qV8jIyMCMGTOQm5uLN998s8PTW42NjdiyZQsiIiJQUVGB77//Hjk5Odi7dy9SU1MxcODATrfCpCDxzK09g8GAH374AUeOHJG/dsmSJThw4ADS0tJgNpvl7+3+++/H3/72NyxevBj33HMPLrjgAowaNQpbt26Vs0QOhwNNTU2or6+HyWRqV8x74MAB/Pvf/8Ybb7yBmJgYrF+/HikpKbDb7SguLoYoinjjjTcQHR2NIUOGdPvzIQpq/m79S0Si2NjYKGZkZIgAxAcffLDDzzl+/HiPRwncc889HV6bO3euCEB89NFHRafTKX/897//vXjppZeKERER4g033ODW2p955hnxkksu6fHnf/fdd+3ev+uuu866z++//15MTU0Vb7nllnYfLykpEUtLS+X3y8rKxEmTJokpKSnihAkTzrovaVSA9L2azWbxj3/8o3jnnXeKo0ePFo1Go5iVlSXOmjVLPHbsmFhbWyv+5S9/EQcOHCgCEA0GgzhkyBDx8ssvF8vKytrd9v79+0UAYkFBQbuPL1y4UNTpdO3GKmi1Wnm8w/79+8WBAweKNTU18teYzWbxn//8p3jXXXeJY8eOFXv16iXq9fqzxjNcffXVoiiKYm1trThs2DARgDhs2DBx0aJFotVqbbeOiRMnigDEiIgI8eWXX+7050EUKgRR9FH1HxF1adu2bUhOTsaAAQN8dh/79u3Dxx9/fFaR6MKFC/Hyyy/jvPPOw/PPP99h75LOPProo/j+++/lJnVKEEURjY2N7WqAOvPEE08gOTkZd9xxx1mFwB156KGHcOrUKVx00UW4/PLLMXLkyA639A4cOICvvvoKe/bsQW5uLh5//PEer9/hcMBms8nvSyeKJPX19d0WBwOu+hUp06PT6dodNf/hhx8QERHR6XDK48ePw2KxyCfGiEIdAxgiIiIKOuwDQ0REREGHAQwREREFHQYwREREFHQYwBAREVHQCeo+ME6nE6WlpYiNje22URgREREFBlEUYTabkZmZ2eEw2J4I6gCmtLRUni1CREREweXkyZMej70I6gAmNjYWgOs/QBqeR0RERIGtrq4O2dnZ8vO4J4I6gJG2jeLi4hjAEBERBRlvyj9YxEtERERBhwEMERERBR0GMERERBR0groGhoiIwtuZgzQpMJw50NQXGMAQEVHQEUURp06dQm1trdpLoU4kJCSgV69ePuvTxgCGiIiCjhS8pKWlISoqis1MA4goirBYLDh9+jQAICMjwyf3wwCGiIiCisPhkIOX5ORktZdDHYiMjAQAnD59GmlpaT7ZTmIRLxERBRWp5iUqKkrllVBXpJ+Pr2qUGMAQEVFQ4rZRYPP1z4cBDBEREQUdBjBEREQUdBjAEBERkayoqCgotucYwJBPNDY71F4CERGFMAYwpLj5Gw7i3OfWYeeJGrWXQkRhQhRFWJrtqryJotjjdd5555147rnn8MEHH2Dw4MF44403AAA//PADxowZg/j4eFx//fUwmUzy1yxYsABZWVno168fHnnkEfTr1w8AsGTJEkycOFH+vDMzJ2vXrsW5556LhIQE3H333bBarfK1efPmISMjA3FxcbjlllvkaxEREcjJyQHgKsIVBAFbt26V/49nzZqFlJQUJCYm4pFHHnHre1ca+8CQ4rYeqYLdKeLbw5U4v0+i2sshojDQaHNg6B/XqXLfhc9fgShDz59O161bh/Xr12P+/PkYOXIkamtrceWVV+K3v/0t/vOf/+Dee+/FrFmz8O677yI/Px+PPfYYPvnkE/Tr1w/XXXddj+7jyJEjuPbaa7FgwQJceumluPHGG/G3v/0NTz/9NPbv348nn3wSGzduRGZmJm655RYsWbIE9913H8rLy3H8+HGMHDkSNTWuF6GxsbHyut9//31s2rQJOp0OV155Ja666ipcccUV7v+nKYABDCmust4VyR+tbFB5JUREgefo0aM4ePAg4uPjAQAffPAB9Ho9nnnmGQiCgMceewy33347AGDlypWYMmUKpk6dCgCYPXs25syZ0+19fPTRRzj//PPx61//GgBw//33Y/HixXj66acREREBALBarejTpw+2bdsmf118fDzi4uIAuEYBtBUZGQmn0wmr1Yrhw4erXivDAIYUJwUwxxjAEJGfROq1KHxenUxApN69LrN33HGHHLwAQElJCSoqKpCY6MpYO51OmM1mNDU14fTp08jMzJQ/t2/fvp3ersViaXebP/74oxyE2O12xMTEAAD69euHd999F08++SQOHjyIKVOm4M0330RaWlqX67700kvxhz/8ATNnzkRpaSluvPFGvPrqq4iOjnbr+1cKa2BIUVa7A3VNdgBAEQMYIvITQRAQZdCp8uZuFuLMJ/zevXvjggsuwK5du7Br1y7s3r0bO3fuhF6vR0ZGBk6ePCl/7tGjR9t9zw5H64GJ/Pz8drd5zTXXtLvNDRs2AACKi4sxYsQI7NixAydOnEBNTQ1eeOEF+Ws1Gldo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k7ZixQokJSWhoqKi3ee03RXpEeUPTAWu5cuXi5GRkWJaWpqYnJwsFhQUiMuXLxcBnPV2Zq8JCnwd/XxFURRramrEpKQkcfv27SqvkLx15t/m999/L44bN06MjIwUc3JyxOXLl6u2NvJMV4/Ba9euFc855xwxNjZWvPHGG8XTp0+rvVxy05dffin+7ne/k98vLS0VBUEQP/vsM3HAgAHyx48dOyZGRESIdru9x7cddrOQSkpKkJ+fj3HjxiE1NVXt5ZDC+PMlIgocpaWlGDJkCObNm4crr7wSTz/9NMrLy7F69WpkZmZi3rx5uOOOO3D//fejpKQEq1at6vFth10AQ0RERP6zbt06PPbYYyguLsYVV1yBt956C6mpqfjss89w6623IjY2Fg6HA5s3b8awYcN6fLsMYIiIiEgV3mTNGcAQERFR0AmbU0hEREQUOhjAEBERUdBhAENERERBhwEMERERBR0GMERERBR0GMAQERFR0GEAQ0REREGHAQwREREFHQYwREREFHQYwBAREVHQYQBDREREQYcBDBEREQUdBjBEREQUdBjAEBERUdBhAENERERBhwEMERERBZ2ADmC2bduG0aNHIzY2FpMmTUJJSYnaSyIiIqIAELABjMViwbXXXouHHnoIhYWFiI2NxUMPPaT2soiIiCgABGwAs2/fPtTU1GDmzJnIzs7Gs88+C0EQ1F4WERERBYCADWCys7MhCAKee+452Gw2nHfeefj0008BAGvXrsW5556LhIQE3H333bBarQCAO++8EzNmzMDo0aORlJSE3/zmN7DZbGp+G0REROQDARvApKWl4YMPPsCrr76KgQMHYunSpQCAI0eO4Nprr8Vjjz2GHTt2YMeOHfjb3/4mf93KlSvx5z//GV999RXWrVuHN954Q61vgYiIiHxEEEVRVHsRXTGZTHjllVfw0ksv4YEHHkBSUhJWr16NrVu3AgDefvttLF68GNu3b8edd94Ju92ODz74AADwyiuvYMWKFfjqq69U/A6IiIhIaTq1F9CZ0tJSNDY2on///njuuecwceJEXHbZZbjzzjvx448/IiEhAQBgt9sRExMjf112drb876ysLJSXl/t76URERORjARvAfPzxx1i5ciU2bdoEAJgwYQL0ej369euHa665BvPmzQMAOBwOWCwW+euKiorkf584cQIZGRl+XTcRERH5XsDWwEyaNAnfffcdPvroI5SUlOC5555DRkYGbrnlFmzZsgWHDh0CAPz973/HzJkz5a/77LPP8Pnnn+Onn37CW2+9heuvv16tb4GIiIh8JKBrYD788EM899xzKC0txfnnn4/XX38d5513HtauXYvZs2fj6NGjGDNmDN5++20MHDgQd955J5xOJ/bt24cjR47gtttuw/z586HX69X+VoiIiEhBAR3AuOvOO+9Ev3798Nxzz6m9FCIiIvKhgN1CIiIiIupMSGVgiIiIKDyEfAamqqoK3333HSorK9VeChERESkkoAKYFStWIDc3FzqdDmPGjMG+ffsAAAUFBcjLy0NiYiJmz56NM5NGVVVVyMnJaXeEGgCWLVuGAQMG4De/+Q369OmDZcuW+etbISIiIh8KmADmyJEjmDlzJubOnYuSkhL07dtXnnM0bdo0jB49Gvn5+SgsLMSSJUvkr6usrMTUqVPPCl5qa2vx8MMPY8uWLdi5cyfefvttPPHEE/79poiIiMgnAiaA2bdvH+bMmYObb74Z6enpeOCBB5Cfn481a9bAZDJh/vz56N+/P+bMmYPFixfLXzdjxgzMmDHjrNszm8149dVXMXz4cADAyJEjUVNT47fvh4iIiHwnYIt4Fy5ciNdffx0333wztm3bhs8//xwAIIoikpOTUV1dDQA4evQocnNzIQgCjh07hn79+p11WzabDXfddRc0Gk277A0REREFp4AcJdDc3Ix58+bhsccew9GjR5GTkyNfEwQBWq0WNTU1SExMRG5ubpe3tXv3blx22WUwGAzYv3+/r5dOREREfhAwW0htPf3004iJicG9994LnU4Ho9HY7npERES7+UddGTFiBL788ksMGzas3cgBIiIiCl4Bl4HZsGEDFi5ciK1bt0Kv1yMpKQkFBQXtPsdsNsNgMPTo9gRBwPnnn48lS5agb9++cuaGiIiIgldAZWCOHj2K2267DQsWLMDQoUMBAHl5edi6dav8OUVFRbBarUhKSurytjZu3IjZs2fL7+t0rlhNowmob5mIiIg8EDDP5o2NjZg6dSqmT5+Oa6+9FvX19aivr8cll1wCk8mEpUuXAgDmzp2LSZMmQavVdnl7Q4YMwdtvv41Fixbh5MmTePLJJzF58mTEx8f749shIiIiHwqYU0ifffYZrrvuurM+fuzYMezatQu33norYmNj4XA4sHnzZgwbNqzd53V0CmndunV47LHHUFxcjCuuuAJvvfUWUlNTff2tEBERkY8FTADTnZKSEuTn52PcuHEMQoiIiMJc0AQwRERERJKAqYEhIiIi6ikGMERERBR0GMAQERFR0GEAQ0REREGHAQwREREFHQYwROR3RUVFEARB7WUQURBjAENEAW3ixIlYsmSJ2ssgogDDAIaIiIiCDgMYIvKL1atXY8CAAUhOTm6XUdmyZQvOO+88REVFIS8vT54+f//990MQBGzevBkzZ86EIAi4//775a/74YcfMGbMGMTHx+P666+HyWTy97dERCpiAENEPldeXo5f/OIXeOKJJ7Bt2zZ8/vnnAACn04kbb7wRN910E44ePYpx48bJU+RfeeUV1NTUYPz48XjzzTdRU1ODV155BQBQW1uLK6+8EldffTX27NkDi8WCWbNmqfb9EZH/6dReABGFvrVr1yI3Nxf33HMPAOBPf/oTrrrqKgDA7t27ER8fj59++glmsxkHDx4EAERGRiIyMhI6nQ5RUVFISEiQb2/16tXQ6/V45plnIAgCHnvsMdx+++1+/76ISD0MYIjI58rKypCdnS2/n5ubCwDQaDSYP38+3n33XeTm5qJv375wOBzd3l5JSQkqKiqQmJgIwJXJMZvNaGpqQkREhG++CSIKKAxgiMjn0tLSUFpaKr9/4sQJAMBXX32FBQsW4PDhw0hPT8fnn3+OHTt2tPtajUaDM2fO9u7dGxdccAGWLVsGABBFESaTCXq93sffCREFCtbAEJHPXXHFFThw4AD+8Y9/4MiRI3juuecAAPX19QAAk8mEb7/9Fo8//vhZwcqAAQPwxRdfoKysDF988QUcDgeuvvpqHD9+HNu3b4dWq8WyZcswZcqUs76WiEIXAxgi8rmsrCx8+OGH+NOf/oSLL74Y48ePBwBMmTIF11xzDUaNGoX7778f99xzD0pLS1FeXi5/7TPPPIPjx48jJycHDzzwAJxOJxISErBy5Uq8/PLLGDJkCJYvX46VK1dCp2NSmShcCCJfshAREVGQYQaGiIiIgg4DGCIiIgo6DGCIiIgo6DCAISIioqDDAIaIiIiCDgMYIiIiCjoMYIiIiCjoMIAhIiKioMMAhoiIiIIOAxgiIiIKOgxgiIiIKOj8P3XLUqgqgxn/AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#绘制订单请求数随日期变化的折线图\n",
    "\n",
    "req_date.plot(kind='line')\n",
    "plt.title('每日订单请求变化趋势')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d3740b94-094a-46d7-b23b-bc39decf81c2",
   "metadata": {},
   "source": [
    "单月订单请求数随日期的变化呈周期性变化，我们猜测4个峰值分别对应4个周末，周末用户出行需求较大。\n",
    "\n",
    "经验证发现猜想与数据吻合，因此司机运营平台应考虑加大周末、节假日的车辆供给。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "299fa259-ac72-47b1-a2c9-c70b7d8ae818",
   "metadata": {},
   "source": [
    "#### 2.3 各时段订单完成率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "31574051-c03a-4c3f-bd8b-c719e0dcce18",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\kyyk\\AppData\\Local\\Temp\\ipykernel_2720\\1853639773.py:1: FutureWarning: The provided callable <built-in function sum> is currently using SeriesGroupBy.sum. In a future version of pandas, the provided callable will be used directly. To keep current behavior pass the string \"sum\" instead.\n",
      "  com_hour = city.groupby(['hour']).agg({'requests':sum,'trips':sum})\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>requests</th>\n",
       "      <th>trips</th>\n",
       "      <th>rate</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>hour</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>6008</td>\n",
       "      <td>4550</td>\n",
       "      <td>0.757324</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>8530</td>\n",
       "      <td>5850</td>\n",
       "      <td>0.685815</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>6559</td>\n",
       "      <td>3085</td>\n",
       "      <td>0.470346</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      requests  trips      rate\n",
       "hour                           \n",
       "11        6008   4550  0.757324\n",
       "12        8530   5850  0.685815\n",
       "13        6559   3085  0.470346"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "com_hour = city.groupby(['hour']).agg({'requests':sum,'trips':sum})\n",
    "com_hour['rate']=com_hour['trips']/com_hour['requests']\n",
    "com_hour"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2b25d700-c766-499b-89b1-d4b4ad9458ff",
   "metadata": {},
   "source": [
    "13点订单需求较多，但订单完成率仅47%，说明较多订单没有得到及时相应。\n",
    "\n",
    "客运部应重点关注13点订单相应时长，排查具体原因。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a04a4f95-715f-4ecf-a0fd-8c9c122e329c",
   "metadata": {},
   "source": [
    "#### 2.4 单月每日订单完成率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "b4bd57fc-8619-4b66-a147-7513ad3053da",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\kyyk\\AppData\\Local\\Temp\\ipykernel_2720\\1204053157.py:1: FutureWarning: The provided callable <built-in function sum> is currently using SeriesGroupBy.sum. In a future version of pandas, the provided callable will be used directly. To keep current behavior pass the string \"sum\" instead.\n",
      "  com_date = city.groupby(['date']).agg({'requests':sum,'trips':sum})\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>requests</th>\n",
       "      <th>trips</th>\n",
       "      <th>rate</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2013-09-01</th>\n",
       "      <td>206</td>\n",
       "      <td>146</td>\n",
       "      <td>0.708738</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-09-02</th>\n",
       "      <td>604</td>\n",
       "      <td>487</td>\n",
       "      <td>0.806291</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-09-03</th>\n",
       "      <td>238</td>\n",
       "      <td>83</td>\n",
       "      <td>0.348739</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-09-04</th>\n",
       "      <td>199</td>\n",
       "      <td>102</td>\n",
       "      <td>0.512563</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-09-05</th>\n",
       "      <td>782</td>\n",
       "      <td>532</td>\n",
       "      <td>0.680307</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            requests  trips      rate\n",
       "date                                 \n",
       "2013-09-01       206    146  0.708738\n",
       "2013-09-02       604    487  0.806291\n",
       "2013-09-03       238     83  0.348739\n",
       "2013-09-04       199    102  0.512563\n",
       "2013-09-05       782    532  0.680307"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "com_date = city.groupby(['date']).agg({'requests':sum,'trips':sum})\n",
    "com_date['rate']=com_date['trips']/com_date['requests']\n",
    "com_date.sort_values('date').head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "33ab50b2-51c6-4e48-9d1e-9316d95ea196",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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k08WzzzzjLBaraK7u1v5enNzc8D1IDfffHOPx+/u7hZut1vs379fABCVlZX9XudQxz0HDx4UAMT27duVo6k777xTnHjiiT2OqxYtWtTnuKe7u1t0d3cLl8sV8J+bw+EQHR0dPW7zxz/+sc/Pm5GRIYQQ4j//+Y8oLi4WQniOSQCIVatW9blfm80mbrrpJvHVV18JIYS4++67xYwZM0Rtba245ZZbxKWXXirq6urEiBEjxJNPPtnjtkeOHBGPPvpoj69NnjxZLF26VAghxLp16wQAsW3bNuW//+c//1HqSRoaGkReXp7429/+Ju655x5x8skn97gv+bhHq9WKn/70p8Jutw/552Q0GpWfZSDPPPOMKCsr6/G1zs5O0dDQIMxms3j77bdFY2OjuP3224XJZBIvvfSSOHDggLBareL9998XBoNBPPnkk0Kr1YrW1tYhr4lIbZhJIRrAjTfe2KPF86STTurzPcuXL1f+/2effYaf/OQn+NnPfoZVq1YB8GUqXn/9dSxatGjAx5KzFf78u0KAvp0jgZLbWY1Go3KfcmeI/2P4d83Irr/++h4ty8HYs2eP8u7dbrfjuOOOw7PPPgsAePHFF5X7nT59Ourr61FdXY0HHngAM2bMwE9/+tMe9/XOO+9g6dKlMJvNOP3003HWWWdh/fr1uPnmm/HII49g06ZN+Oijj3D22Wfj/vvvxzXXXIOPPvoIzz//PCRJQmFhIX7961+jublZyWT897//hU6ng9VqxezZs9HQ0ID09HRYrVZIkoTLL79cefyCggJ8//33KC0txZ/+9Kce19bd3Y0///nPAIC77767TwbI33fffYeNGzfi5z//eZ//tmXLFvznP/+BwWCAVquFJEnYunVrn7+XZ599Fr/61a9QUFCA6dOnw2KxoKqqCmvXrsXxxx+vfN/pp5+O008/Hddccw1+8IMfICcnZ8i/MyK1YZBCNIA///nPuP/++yGEQF5eHvbv34/c3FwsWLAAt9xyC8455xzle4866ig89thjOO6443q8qIggBmsF873BkI9h+kv39w58eh/33Hvvvbjrrrug0+kgSRK2b9+OBQsW4JVXXsEJJ5yAV199Fddff70yxwXwHJ3YbDaMGjVK+VpnZycKCgqUa0hPT0dhYSEAYNq0acjKysKjjz6KZ555Bu+++26f46TVq1fjjDPOwPLly3Hk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IPXr7+9XCCFaWlqE2WwWX3/9dZyvkMLV+9/mV199JebNmyfS0tLEmDFjxOuvvx63a6PQDPYc/N5774kpU6aIrKwscdFFF4kjR47E+3IpSB9//LH43e9+p3xeW1srJEkSb7zxhhg/frzy9f379wuTySScTmfA952Uu3tqamqwceNGzJs3D4WFhfG+HIow/v0SEalHbW0tJk+ejAceeABnn3027rjjDhw+fBjvvPMOhg8fjgceeAA//elPsXjxYtTU1ODtt98O+L6TMkghIiKi2Hn//fdx00034dChQzjzzDPxj3/8A4WFhXjjjTdw+eWXIysrCy6XC5999hmmTZsW8P0ySCEiIqKoCSf7zSCFiIiIVCmpunuIiIgoeTBIISIiIlVikEJERESqxCCFiIiIVIlBChEREakSgxQiIiJSJQYpREREpEoMUoiIiEiVGKQQERGRKjFIISIiIlVikEJERESqxCCFiIiIVIlBChEREakSgxQiIiJSJQYpREREpEoMUoiIiEiV4h6kbNiwAXPmzEFWVhYWLFiAmpqaeF8SERERqUBcg5Suri6cf/75uP7661FRUYGsrCxcf/318bwkIiIiUom4Bik7duxAS0sLrr76apSVleGuu+6CJEnxvCQiIiJSibgGKWVlZZAkCXfffTccDgdmzZqF1157DQDw3nvv4aijjkJubi5+8YtfwGazAQCuuuoqXHrppZgzZw7MZjOuu+46OByOeP4YREREFAVxDVKGDRuGZ599Fg899BAmTJiAp59+GgCwb98+nH/++bjpppvw7bff4ttvv8Vf/vIX5XZvvfUW/vSnP+HTTz/F+++/j0cffTRePwIRERFFiSSEEPG+iLa2Nvz1r3/F/fffj2uvvRZmsxnvvPMO1q9fDwB44oknsHLlSnz99de46qqr4HQ68eyzzwIA/vrXv+LNN9/Ep59+GsefgIiIiCJNF88Hr62tRXd3N8aNG4e7774bp5xyCk499VRcddVV2LRpE3JzcwEATqcTmZmZyu3KysqU/19aWorDhw/H+tKJiIgoyuIapLz44ot466238MknnwAA5s+fD71ej9GjR+OHP/whHnjgAQCAy+VCV1eXcruqqirl/x88eBAlJSUxvW4iIiKKvrjWpCxYsABffvklnn/+edTU1ODuu+9GSUkJLrvsMqxbtw579uwBAPztb3/D1VdfrdzujTfewOrVq7F161b84x//wIUXXhivH4GIiIiiJO41Kc899xzuvvtu1NbWYvbs2XjkkUcwa9YsvPfee1i6dCkqKytx3HHH4YknnsCECRNw1VVXwe12Y8eOHdi3bx+uuOIKLF++HHq9Pp4/BhEREUVY3IOUYF111VUYPXo07r777nhfChEREUVR3MfiExEREfUn4TIpRERElBqSIpPS1NSEL7/8Eo2NjfG+FCIiIoqQmAcpb775JsaOHQudTofjjjsOO3bsAABs27YN5eXlyMvLw9KlS9E7wdPU1IQxY8b0aD8GgBdeeAHjx4/Hddddh5EjR+KFF16I1Y9CREREURTTIGXfvn24+uqrsWzZMtTU1GDUqFHKXp6FCxdizpw52LhxIyoqKrBq1Srldo2NjTjvvPP6BCitra244YYbsG7dOnz33Xd44okncOutt8byRyIiIqIoiWmQsmPHDtx777245JJLUFRUhGuvvRYbN27EmjVr0NbWhuXLl2PcuHG49957sXLlSuV2l156KS699NI+92exWPDQQw9h+vTpAICZM2eipaUlZj8PERERRU9cC2cff/xxPPLII7jkkkuwYcMGrF69GgAghEB+fj6am5sBAJWVlRg7diwkScL+/fsxevToPvflcDjw85//HBqNpkcWhoiIiBJT3Mbi2+12PPDAA7jppptQWVmJMWPGKP9NkiRotVq0tLQgLy8PY8eOHfS+tmzZglNPPRUGgwE7d+6M9qUTERFRDMStu+eOO+5AZmYmfvnLX0Kn08FoNPb47yaTqce+nsHMmDEDH3/8MaZNm9ZjfD4RERElrrhkUj788EM8/vjjWL9+PfR6PcxmM7Zt29bjeywWCwwGQ0D3J0kSZs+ejVWrVmHUqFFKBoaIiIgSV8wzKZWVlbjiiivw2GOPYerUqQCA8vJyrF+/Xvmeqqoq2Gw2mM3mQe9r7dq1WLp0qfK5TueJuTSapBj/QkRElNJi+mre3d2N8847D4sWLcL555+Pjo4OdHR04KSTTkJbWxuefvppAMCyZcuwYMECaLXaQe9v8uTJeOKJJ7BixQpUV1fjtttuwxlnnIGcnJxY/DhEREQURTHt7nnjjTdwwQUX9Pn6/v37sXnzZlx++eXIysqCy+XCZ599hmnTpvW82H66e95//33cdNNNOHToEM4880z84x//QGFhYbR/FCIiIooyVe3uqampwcaNGzFv3jwGGkRERClOVUEKERERkYwVpkRERKRKDFKIiIhIlRikEBERkSoxSCEiIiJVYpBCREREqsQghYiioqqqCpIkxfsyiCiBMUghorg75ZRTsGrVqnhfBhGpDIMUIiIiUiUGKUQUMe+88w7Gjx+P/Pz8HpmRdevWYdasWUhPT0d5ebmy9Xzx4sWQJAmfffYZrr76akiShMWLFyu3++abb3DcccchJycHF154Idra2mL9IxFRHDFIIaKIOHz4MH784x/j1ltvxYYNG7B69WoAgNvtxkUXXYSLL74YlZWVmDdvnrK9/K9//StaWlpwwgkn4O9//ztaWlrw17/+FQDQ2tqKs88+G+eeey6+//57dHV14eabb47bz0dEsaeL9wUQUXJ47733MHbsWFxzzTUAgP/5n//BOeecAwDYsmULcnJysHXrVlgsFuzevRsAkJaWhrS0NOh0OqSnpyM3N1e5v3feeQd6vR533nknJEnCTTfdhJ/85Ccx/7mIKH4YpBBRRNTV1aGsrEz5fOzYsQAAjUaD5cuX46mnnsLYsWMxatQouFyuIe+vpqYGDQ0NyMvLA+DJyFgsFlitVphMpuj8EESkKgxSiCgihg0bhtraWuXzgwcPAgA+/fRTPPbYY9i7dy+KioqwevVqfPvttz1uq9Fo0HvX6YgRI3DMMcfghRdeAAAIIdDW1ga9Xh/ln4SI1II1KUQUEWeeeSZ27dqFf//739i3bx/uvvtuAEBHRwcAoK2tDf/973/x29/+tk9AMn78eHz00Ueoq6vDRx99BJfLhXPPPRcHDhzA119/Da1WixdeeAFnnXVWn9sSUfJikEJEEVFaWornnnsO//M//4MTTzwRJ5xwAgDgrLPOwg9/+EMcffTRWLx4Ma655hrU1tbi8OHDym3vvPNOHDhwAGPGjMG1114Lt9uN3NxcvPXWW3jwwQcxefJkvP7663jrrbeg0zEBTJQqJMG3JURERKRCzKQQERGRKjFIISIiIlVikEJERESqxCCFiIiIVIlBChEREakSgxQiIiJSJQYpREREpEoMUoiIiEiVGKQQERGRKjFIISIiIlVikEJERESq9P8B9FTdRKaXXzEAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#绘制订单完成率随日期变化的折线图\n",
    "\n",
    "com_date.rate.plot(kind='line')\n",
    "plt.title('每日订单完成率变化趋势')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6245c1f1-e556-424a-ac7b-5a2c5f292cd8",
   "metadata": {},
   "source": [
    "单月每日订单完成率规律不太明显，但几个谷值基本都出现在周末附近，说明客户出行需求的提升可能导致司机数量相对短缺，从而致使响应率的降低。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "23c75024-5fc7-46a8-9992-bb8e4b3fb037",
   "metadata": {},
   "source": [
    "#### 2.5 顾客等待时间"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "946f9d8e-8690-49f9-a4f7-12e1b827b78d",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\kyyk\\AppData\\Local\\Temp\\ipykernel_2720\\1768499718.py:3: FutureWarning: The provided callable <function mean at 0x0000017D5D9B0FE0> is currently using SeriesGroupBy.mean. In a future version of pandas, the provided callable will be used directly. To keep current behavior pass the string \"mean\" instead.\n",
      "  eta_hour = city.groupby(['hour']).agg({'pETA':np.mean,'aETA':np.mean})\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pETA</th>\n",
       "      <th>aETA</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>hour</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>5.397333</td>\n",
       "      <td>6.611000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>5.860000</td>\n",
       "      <td>7.253333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>6.018333</td>\n",
       "      <td>7.732667</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          pETA      aETA\n",
       "hour                    \n",
       "11    5.397333  6.611000\n",
       "12    5.860000  7.253333\n",
       "13    6.018333  7.732667"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "eta_hour = city.groupby(['hour']).agg({'pETA':np.mean,'aETA':np.mean})\n",
    "eta_hour"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "e28c67d5-d2a7-472b-be68-722ea346133e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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2g+AshEogBpg27Ztio2N9c7//e9/12uvvab169frkUceUc+ePfWHP/xBAwcOVHZ2tqKiorzjKNx///2Kjo7WlClTlJ+f7+2RePvtt8t9vVOnTungwYPq06ePd9lPfvIT5eTk3PB0gMvl0oIFC7Ro0SLl5+dr27Zt6t27tyRpyJAhJdoWn+4YOXKkYmJitG3bNtnt9hIDTtWrV8/bvriH4sEHHyyxn+LgFBERoZdeeqnc2m4kJydHq1ev1ttvv62NGzdq0KBBSkxM9IYcAFWgGm9ZBWBZ1rfffmvZbDZr//79VlpamiXJCgoKsn75y19aHo/HsizL+uabbyyn02n97//+r/Xss89aPXv2tC5evFhqX3/5y1+sG/1n/fXXX1t2u/2G9axcudL67//+7zLXRUdHWzNmzLjh9q1atbI+/vhj73zxeBC//e1vLcuyrJSUlBLjTRT75ptvSizfunWrFR0dbaWlpZX5Ot26dbthLcWvu23bNqt169aWw+GwDhw4YJ0+fdqKioqyIiIirNWrV3s/YwBmuIYCqGbNmjXTa6+9pi5duuj8+fMKDQ3VH/7wB7355pvyeDxasmSJHn30UcXFxal3796aP3++QkND1bt3b50+fbrCr/evt23+q3vvvVdLliwp81kXN3uOh6RSY0LExsYqPj5eY8eOlXT99lZJpS4ArVOnjrp16+btwejXr5/OnDmjBg0alGiXl5envLw8Xb58udyxKyR5T+v0799fkZGR+vbbb9W5c2fFxMRo+/btatWqlcaOHasHHnhAu3fvvun7AnAT1Z1oAJR05swZ779/8sknltPptD788MMSbXJycqx+/fpZ8+fPL7H8888/9/ZwlDXZ7XZLklVYWHjDGn79619b77//vnd+9erV1rx58yy73W7NmzfvhttGRUVZS5cuLXPd6NGjrYiICKtWrVqW2+2+4X7KM27cOEuSFRwcbG3ZsqXcduPHj7eCg4OtOXPmlNkL4Xa7rXfffdd6+umnrYKCgkrVAuD/2SzrJkPMAahWly5d8t458WMFBQWlHo71xz/+UWPGjCl35MitW7dqwIABSktLK/XL/0aGDRumw4cPq3///pozZ84Nt23SpIni4uK8F3v+2MKFC7Vv3z5NmDDBOz5ERZ08eVJHjx5Vjx491Lhx43LbZWZm6tChQ94BtwD4F4ECuI0UFBQoJyen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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#绘制顾客等待时长复合柱状图\n",
    "\n",
    "eta_hour.plot(kind='bar')\n",
    "plt.title('顾客等待时长')\n",
    "plt.xticks(rotation=0)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "58ebb545-fafc-4852-99e2-de9178fcfa95",
   "metadata": {},
   "source": [
    "以上可见，无论哪个时点，用户实际等待时长均明显大于用户预计等待时长。\n",
    "\n",
    "各时点用户等待时长差异不明显，但13点最高。\n",
    "\n",
    "客运部一方面应提升用户预计等待时长的准确性，另一方面优化平台派单逻辑等。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9f6deca2-11cd-45d4-923e-cfa8e23b1c43",
   "metadata": {},
   "source": [
    "#### 2.6 司机在忙率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "8db831d0-52e0-42c9-902c-567c53efc63e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>hour</th>\n",
       "      <th>requests</th>\n",
       "      <th>trips</th>\n",
       "      <th>supply hours</th>\n",
       "      <th>average minutes of trips</th>\n",
       "      <th>pETA</th>\n",
       "      <th>aETA</th>\n",
       "      <th>utiliz</th>\n",
       "      <th>busy</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2013-09-01</td>\n",
       "      <td>11</td>\n",
       "      <td>79</td>\n",
       "      <td>55</td>\n",
       "      <td>42.63</td>\n",
       "      <td>20.43</td>\n",
       "      <td>5.51</td>\n",
       "      <td>7.19</td>\n",
       "      <td>0.479240</td>\n",
       "      <td>20.43</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2013-09-01</td>\n",
       "      <td>12</td>\n",
       "      <td>73</td>\n",
       "      <td>41</td>\n",
       "      <td>36.43</td>\n",
       "      <td>15.53</td>\n",
       "      <td>5.48</td>\n",
       "      <td>8.48</td>\n",
       "      <td>0.426297</td>\n",
       "      <td>15.53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2013-09-01</td>\n",
       "      <td>13</td>\n",
       "      <td>54</td>\n",
       "      <td>50</td>\n",
       "      <td>23.02</td>\n",
       "      <td>17.76</td>\n",
       "      <td>5.07</td>\n",
       "      <td>8.94</td>\n",
       "      <td>0.771503</td>\n",
       "      <td>17.76</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2013-09-02</td>\n",
       "      <td>11</td>\n",
       "      <td>193</td>\n",
       "      <td>170</td>\n",
       "      <td>64.20</td>\n",
       "      <td>31.47</td>\n",
       "      <td>5.31</td>\n",
       "      <td>6.55</td>\n",
       "      <td>0.490187</td>\n",
       "      <td>31.47</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2013-09-02</td>\n",
       "      <td>12</td>\n",
       "      <td>258</td>\n",
       "      <td>210</td>\n",
       "      <td>80.28</td>\n",
       "      <td>38.68</td>\n",
       "      <td>4.94</td>\n",
       "      <td>6.08</td>\n",
       "      <td>0.481814</td>\n",
       "      <td>38.68</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        date  hour  requests  trips  supply hours  average minutes of trips  \\\n",
       "0 2013-09-01    11        79     55         42.63                     20.43   \n",
       "1 2013-09-01    12        73     41         36.43                     15.53   \n",
       "2 2013-09-01    13        54     50         23.02                     17.76   \n",
       "3 2013-09-02    11       193    170         64.20                     31.47   \n",
       "4 2013-09-02    12       258    210         80.28                     38.68   \n",
       "\n",
       "   pETA  aETA    utiliz   busy  \n",
       "0  5.51  7.19  0.479240  20.43  \n",
       "1  5.48  8.48  0.426297  15.53  \n",
       "2  5.07  8.94  0.771503  17.76  \n",
       "3  5.31  6.55  0.490187  31.47  \n",
       "4  4.94  6.08  0.481814  38.68  "
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "city['busy'] = city['supply hours']*city['utiliz']\n",
    "city.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "caf7fa47-fe6d-42db-80be-8672fc59df5e",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\kyyk\\AppData\\Local\\Temp\\ipykernel_2720\\1056537297.py:1: FutureWarning: The provided callable <built-in function sum> is currently using SeriesGroupBy.sum. In a future version of pandas, the provided callable will be used directly. To keep current behavior pass the string \"sum\" instead.\n",
      "  busy_hour = city.groupby(['hour']).agg({'supply hours':sum,'busy':sum})\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>supply hours</th>\n",
       "      <th>busy</th>\n",
       "      <th>utiliz</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>hour</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>1660.01</td>\n",
       "      <td>768.51</td>\n",
       "      <td>0.462955</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>1818.03</td>\n",
       "      <td>1115.28</td>\n",
       "      <td>0.613455</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>1274.60</td>\n",
       "      <td>730.83</td>\n",
       "      <td>0.573380</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      supply hours     busy    utiliz\n",
       "hour                                 \n",
       "11         1660.01   768.51  0.462955\n",
       "12         1818.03  1115.28  0.613455\n",
       "13         1274.60   730.83  0.573380"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "busy_hour = city.groupby(['hour']).agg({'supply hours':sum,'busy':sum})\n",
    "busy_hour['utiliz'] = busy_hour['busy']/busy_hour['supply hours']\n",
    "busy_hour"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d87ebfd9-6a65-4c5c-b38e-fa0f648a0081",
   "metadata": {},
   "source": [
    "12点司机在忙总时长最长，在忙率也最高，用户订单请求也最多，说明车辆总数偏少。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1489b106-2358-4d48-a3f9-6697209253d9",
   "metadata": {},
   "source": [
    "#### 2.7 订单时长"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "06dfeb52-accf-4d7a-98dc-4d203f65f45f",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\kyyk\\AppData\\Local\\Temp\\ipykernel_2720\\3541132931.py:1: FutureWarning: The provided callable <function mean at 0x0000017D5D9B0FE0> is currently using SeriesGroupBy.mean. In a future version of pandas, the provided callable will be used directly. To keep current behavior pass the string \"mean\" instead.\n",
      "  trip_min = city.groupby(['hour']).agg({'average minutes of trips':np.mean})\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>average minutes of trips</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>hour</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>25.617</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>37.176</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>24.361</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      average minutes of trips\n",
       "hour                          \n",
       "11                      25.617\n",
       "12                      37.176\n",
       "13                      24.361"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trip_min = city.groupby(['hour']).agg({'average minutes of trips':np.mean})\n",
    "trip_min"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "75ace337-d2bb-4466-98a4-a0f2a2d66a4f",
   "metadata": {},
   "source": [
    "12点用户订单需求较多，同时订单时长最长，说明这个时间点是一个非常重要的时间点。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "b5cb3dfb-ada5-4351-9857-1ace4d86d337",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\kyyk\\AppData\\Local\\Temp\\ipykernel_2720\\3708972554.py:1: FutureWarning: The provided callable <function mean at 0x0000017D5D9B0FE0> is currently using SeriesGroupBy.mean. In a future version of pandas, the provided callable will be used directly. To keep current behavior pass the string \"mean\" instead.\n",
      "  supply_hour = city.groupby(['hour']).agg({'supply hours':np.mean})\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>supply hours</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>hour</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>55.333667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>60.601000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>42.486667</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      supply hours\n",
       "hour              \n",
       "11       55.333667\n",
       "12       60.601000\n",
       "13       42.486667"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "supply_hour = city.groupby(['hour']).agg({'supply hours':np.mean})\n",
    "supply_hour"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fcd8b3c0-fdc2-4ca3-a851-95557a3f2812",
   "metadata": {},
   "source": [
    "13点订单量也较大，但此时点司机服务时长较短。\n",
    "\n",
    "为优化用户出行体验，司机运营平台可联合客运部可考虑此时段尽量分配总服务时长较长的司机来接单（经验较为丰富）。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e7c63159-b46d-40a6-b11c-ded2cf5b1a53",
   "metadata": {},
   "source": [
    "### 3 后续思考方向"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7ff3c8c1-3810-4812-9ee7-f6b91f575b80",
   "metadata": {},
   "source": [
    "提升顾客预计等待时长预测准确度（需要历史数据进行预测）\n",
    "\n",
    "加大车辆投入（分车辆不同等级来看，因此可能需要车辆相关信息表）\n",
    "\n",
    "优化用户体验（需要客诉相关数据）\n",
    "\n",
    "优化平台派单逻辑（需要订单的位置相关数据）\n",
    "\n",
    "个性化需求（需要用户属性、及其他行为数据）"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
